{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "04873838fdfe"
   },
   "outputs": [],
   "source": [
    "##########################################################\n",
    "###USED FOR INTERNAL TESTING - USERS MAY SKIP THIS CELL###\n",
    "##########################################################\n",
    "!pip install pyarrow\n",
    "from google.cloud import storage\n",
    "from google.cloud import bigquery\n",
    "from google.cloud.exceptions import NotFound\n",
    "\n",
    "# Internal testers - Fill in with your GCP Project ID and GCS Bucket Name\n",
    "PROJECT_ID = '[your-project-id]'\n",
    "BUCKET_NAME = '[your-bucket-name]'\n",
    "\n",
    "DATASET_NAME = 'new_york_citibike_trips'\n",
    "\n",
    "\n",
    "def upload_to_gcs(source_file, destination_blob, file_type):\n",
    "    '''Upload a file to GCS'''\n",
    "    storage_client = storage.Client()\n",
    "    bucket = storage_client.get_bucket(BUCKET_NAME)\n",
    "    blob = bucket.blob(destination_blob)\n",
    "    blob.upload_from_filename(source_file, file_type)\n",
    "\n",
    "\n",
    "def write_to_bq(table_name, data_uri, schema):\n",
    "    '''Write a table to BigQuery'''\n",
    "    bigquery_client = bigquery.Client()\n",
    "    dataset_ref = bigquery.DatasetReference(PROJECT_ID, DATASET_NAME)\n",
    "    job_config = bigquery.LoadJobConfig()\n",
    "    job_config.schema = schema\n",
    "    job_config.skip_leading_rows = 1\n",
    "    uri = data_uri\n",
    "    load_job = bigquery_client.load_table_from_uri(\n",
    "        uri, dataset_ref.table(table_name), job_config=job_config\n",
    "    )\n",
    "    load_job.result()  # Wait for table load to complete\n",
    "\n",
    "\n",
    "# Upload datasets to gcs\n",
    "upload_to_gcs('testing_data/clean_data.csv.gz', 'clean_data/citibike.csv.gz', 'application/octet-stream')\n",
    "upload_to_gcs('testing_data/holidays.csv', 'holidays.csv', 'text/csv')\n",
    "upload_to_gcs('testing_data/gasprices.csv', 'gasprices.csv', 'text/csv')\n",
    "\n",
    "# Create dataset\n",
    "bigquery_client = bigquery.Client()\n",
    "\n",
    "try:\n",
    "    dataset_ref = bigquery.dataset.DatasetReference(PROJECT_ID, DATASET_NAME)\n",
    "    bigquery_client.get_dataset(dataset_ref)\n",
    "except NotFound:\n",
    "    dataset_id = f'{PROJECT_ID}.{DATASET_NAME}'\n",
    "    dataset = bigquery.Dataset(dataset_id)\n",
    "    dataset.location = \"US\"\n",
    "    dataset = bigquery_client.create_dataset(dataset)\n",
    "\n",
    "# Write US Holidays table to BigQuery\n",
    "usholidays_uri = f'gs://{BUCKET_NAME}/usholidays.csv'\n",
    "usholidays_schema = [\n",
    "    bigquery.SchemaField(\"Date\", \"STRING\"),\n",
    "    bigquery.SchemaField(\"Holiday\", \"STRING\"),\n",
    "]\n",
    "write_to_bq('usholidays', usholidays_uri, usholidays_schema)\n",
    "\n",
    "# Write Gas Prices table to BigQuery\n",
    "gasprices_uri = f'gs://{BUCKET_NAME}/gasprices.csv'\n",
    "gasprices_schema = [\n",
    "    bigquery.SchemaField(\"Date\", \"STRING\"),\n",
    "    bigquery.SchemaField(\"New_York_State_Average_USD_per_Gal\", \"FLOAT\"),\n",
    "    bigquery.SchemaField(\"Albany_Average_USD_per_Gal\", \"FLOAT\"),\n",
    "    bigquery.SchemaField(\"Binghamton_Average_USD_per_Gal\", \"FLOAT\"),\n",
    "    bigquery.SchemaField(\"Buffalo_Average_USD_per_Gal\", \"FLOAT\"),\n",
    "    bigquery.SchemaField(\"Nassau_Average_USD_per_Gal\", \"FLOAT\"),\n",
    "    bigquery.SchemaField(\"New_York_City_Average_USD_per_Gal\", \"FLOAT\"),\n",
    "    bigquery.SchemaField(\"Rochester_Average_USD_per_Gal\", \"FLOAT\"),\n",
    "    bigquery.SchemaField(\"Syracuse_Average_USD_per_Gal\", \"FLOAT\"),\n",
    "    bigquery.SchemaField(\"Utica_Average_USD_per_Gal\", \"FLOAT\"),\n",
    "]\n",
    "write_to_bq('gas_prices', gasprices_uri, gasprices_schema)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "c4334fc33889"
   },
   "source": [
    "# Feature engineering with pandas and scikit-learn\n",
    "\n",
    "This notebook demonstrates how to use Notebooks to perform feature engineering on a dataset using Pandas.\n",
    "\n",
    "For each dataset, you will load the data into a Pandas DataFrame, clean and transform the columns into a usable format, and then restructure the data into feature and target data columns.\n",
    "\n",
    "Before you jump in, let's cover some of the different tools you'll be using:\n",
    "\n",
    "+ [Vertex AI](https://cloud.google.com/vertex-ai) consists of tools that allow machine learning developers and data scientists to run their ML projects quickly and cost-effectively.\n",
    "\n",
    "+ [Cloud Storage](https://cloud.google.com/storage/) is a unified object storage for developers and enterprises, from live data serving to data analytics/ML to data archiving.\n",
    "\n",
    "+ [BigQuery](https://cloud.google.com/bigquery) is a serverless, highly scalable, and cost-effective multi-cloud data warehouse.\n",
    "\n",
    "+ [Pandas](https://pandas.pydata.org/) is a data analysis and manipulation tool built on top of the Python programming language.\n",
    "\n",
    "+ [Scikit-Learn](https://scikit-learn.org/stable/) is a machine learning and data analysis tool for the Python programming language that provides simple and efficient tools to analyze or predict data."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "c46e81504520"
   },
   "source": [
    "# Citibike Dataset\n",
    "\n",
    "First, you will perform feature engineering on the [Citibike dataset](https://console.cloud.google.com/bigquery?p=bigquery-public-data&d=new_york_citibike&t=citibike_trips). This includes cleaning the data, extracting the necessary features, and transforming the data into feature columns.\n",
    "\n",
    "## Load the data\n",
    "\n",
    "### Import libraries\n",
    "Running the following cell will import the libraries needed to preprocess the Citibike dataset.\n",
    "\n",
    "+ **Pandas**: to store and manipulate the dataset\n",
    "+ **Google Cloud Storage**: to retrieve the dataset from the GCS bucket where the dataset is stored\n",
    "+ **os**: to retrieve environment variables"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "b43704585974"
   },
   "outputs": [],
   "source": [
    "import os\n",
    "import pandas as pd\n",
    "\n",
    "from google.cloud import storage"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "a3d396d4caec"
   },
   "source": [
    "### Define constants\n",
    "Define the name of your Google Cloud Storage bucket where the cleaned data is stored.\n",
    "\n",
    "+ `PROJECT_ID`: unique identifier for your project\n",
    "+ `BUCKET_NAME`: name of the bucket where the cleaned dataset is stored\n",
    "+ `BLOB_PREFIX`: folder where the files are stored"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "3a97ea657df9"
   },
   "outputs": [],
   "source": [
    "PROJECT_ID = os.getenv('PROJECT_ID', '[your-project-id]')\n",
    "BUCKET_NAME = os.getenv('BUCKET_NAME', '[your-bucket-name]')\n",
    "BLOB_PREFIX = 'clean_data/'"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "215bb51aad14"
   },
   "source": [
    "### List the files"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "4ef6e8caac54"
   },
   "source": [
    "Since the data cleaning job outputted multiple partioned files into the GCS bucket, you will need to loop through each file to access its contents. The following cell will create a list of the files with the `BLOB_PREFIX` defined above so they can be referenced later when loading the data into a dataframe."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "19867b32feb6"
   },
   "outputs": [],
   "source": [
    "# Create storage client\n",
    "storage_client = storage.Client()\n",
    "\n",
    "# List files in the bucket with the specified prefix\n",
    "blobs = storage_client.list_blobs(BUCKET_NAME, prefix=BLOB_PREFIX)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "be9de9265b10"
   },
   "source": [
    "### Load the files into a dataframe\n",
    "\n",
    "Now, you can load the files into a dataframe.\n",
    "\n",
    "First, define the schema. From this dataset, you will need 4 columns:\n",
    "\n",
    "+ **starttime**: to extract the day of the week and date of when the trip starts\n",
    "+ **stoptime**: to extract the day of the week and date of when the trip has ended\n",
    "+ **start_station_id**: to find out how many trips started at a station\n",
    "+ **end_station_id**: to find out how many trips ended at a station"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "9cdb8404b46d"
   },
   "outputs": [],
   "source": [
    "COLUMNS = (\n",
    "    'starttime',\n",
    "    'stoptime',\n",
    "    'start_station_id',\n",
    "    'end_station_id',\n",
    ")"
   ]
  },
  {
   "attachments": {
    "image.png": {
     "image/png": "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"
    }
   },
   "cell_type": "markdown",
   "metadata": {
    "id": "eac33ca0edc6"
   },
   "source": [
    "Next, run the following cell to loop through the files in GCS, create a Pandas DataFrame, and view the first ten rows. The columns needed are the 1st, 2nd, 3rd, and 7th columns from left to right (starting with 0 at **tripduration**) when looking at the table in BigQuery.\n",
    "\n",
    "![image.png](attachment:image.png)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "bf436b427fde"
   },
   "outputs": [],
   "source": [
    "# Create empty dataframe\n",
    "citibike_data = pd.DataFrame()\n",
    "\n",
    "# For each file: load the contents into a dataframe\n",
    "# and concatenate the new dataframe with the existing\n",
    "for blob in blobs:\n",
    "    print(\"blob\" + str(blob.name))\n",
    "    filename = f'gs://{BUCKET_NAME}/{blob.name}'\n",
    "    new_df = pd.read_csv(filename, compression='gzip', usecols=[1, 2, 3, 7], header=None,\n",
    "                         names=COLUMNS, low_memory=False)\n",
    "    citibike_data = pd.concat([citibike_data, new_df])\n",
    "\n",
    "citibike_data.head(10)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "dae1b2402e9e"
   },
   "source": [
    "## Extract features\n",
    "\n",
    "### Reformat the data\n",
    "The following cell will modify the dataset in a few ways:\n",
    "\n",
    "+ Any rows with NaN values will be dropped\n",
    "+ The station IDs will be converted from floats to integers\n",
    "+ The times from the start time column will be removed since they are not needed"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "a8c5b4f6847c"
   },
   "outputs": [],
   "source": [
    "# Drop rows with NaN values\n",
    "citibike_data = citibike_data.dropna()\n",
    "\n",
    "# Convert station IDs to integers\n",
    "citibike_data['start_station_id'] = citibike_data['start_station_id'].astype('int32')\n",
    "citibike_data['end_station_id'] = citibike_data['end_station_id'].astype('int32')\n",
    "\n",
    "# Remove time from the time columns\n",
    "citibike_data['starttime'] = citibike_data['starttime'].apply(lambda t: t.split(\"T\")[0])\n",
    "citibike_data['stoptime'] = citibike_data['stoptime'].apply(lambda t: t.split(\"T\")[0])\n",
    "\n",
    "citibike_data.head(10)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "06870af5f83c"
   },
   "source": [
    "### Count trips starting from a station\n",
    "\n",
    "Next, count the number of trips that have been started from each station per day. The `groupby` function from Pandas will count the number of unique combinations of the start time and start station ID values. Then, the `pivot` function from Pandas can be used to convert the station IDs into columns (since they are the target data) and the counts as the values.\n",
    "\n",
    "Also, use the `add_prefix` function to rename the columns and distinguish that the values indicate trips that have started from the station."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "b79bf3a67d6e"
   },
   "outputs": [],
   "source": [
    "# Find unique combinations of start time and start station ID values\n",
    "trips_started = (citibike_data.groupby(['starttime', 'start_station_id'])\n",
    "                              .size().reset_index().rename(columns={0: 'count'}))\n",
    "\n",
    "# Pivot to make station ID the columns and rename them\n",
    "trips_started = (trips_started.pivot(index='starttime', columns='start_station_id', values='count')\n",
    "                              .add_prefix('started_at_'))\n",
    "trips_started.head(10)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "4bd2d7b8136d"
   },
   "source": [
    "### Count trips ending at a station\n",
    "\n",
    "Running the following cell will repeat the same process as above, but will generate values for the number of trips that have ended at the station."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "57296a81da6d"
   },
   "outputs": [],
   "source": [
    "# Find unique combinations of stop time and end station ID values\n",
    "trips_ended = (citibike_data.groupby(['stoptime', 'end_station_id'])\n",
    "                            .size().reset_index().rename(columns={0: 'count'}))\n",
    "\n",
    "# Pivot to make station ID the columns and rename them\n",
    "trips_ended = (trips_ended.pivot(index='stoptime', columns='end_station_id', values='count')\n",
    "                          .add_prefix('ending_at_'))\n",
    "\n",
    "trips_ended.head(10)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "3355580b392d"
   },
   "source": [
    "## Putting it together\n",
    "\n",
    "The following cell will combine both dataframes for trips started and ended at the stations. Then, all NaN values will be replaced with a 0 since this indicates that no trips started or ended at that particular station. Lastly, the dataset will be cleaned up by renaming the columns and converting the values to integers."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "5c82c523b100"
   },
   "outputs": [],
   "source": [
    "# Combine the dataframes\n",
    "# Set the index as row number instead of start time\n",
    "# Fill the NaN values with 0's\n",
    "citibike_df = (pd.concat([trips_started, trips_ended], axis=1)\n",
    "               .reset_index()\n",
    "               .fillna(0))\n",
    "\n",
    "# Rename the column with start and end dates\n",
    "citibike_df.rename(columns={'index': 'date'}, inplace=True)\n",
    "\n",
    "# Convert all values to integers\n",
    "for col in citibike_df.columns:\n",
    "    if col == 'date':\n",
    "        continue\n",
    "    citibike_df[col] = citibike_df[col].astype(int)\n",
    "\n",
    "citibike_df.head(10)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "7f154f540d7b"
   },
   "source": [
    "You are done with feature engineering for the Citibike Dataset! Now, you can move on to the external datasets you ingested in BigQuery to obtain more features, starting with **Gas Prices**."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "7f814c1f3c88"
   },
   "source": [
    "# Gas Prices Dataset\n",
    "\n",
    "Now, perform feature engineering on the [Gas Prices dataset](https://data.ny.gov/Energy-Environment/Gasoline-Prices/wuxr-ni2i). This includes cleaning the data, normalizing the price values, and transforming the data to match the Citibike dataset.\n",
    "\n",
    "## Load the data\n",
    "\n",
    "### Import libraries\n",
    "Running the following cell will import the libraries needed to preprocess the external datasets.\n",
    "\n",
    "+ **Datetime**: to manipulate the date column\n",
    "+ **BigQuery**: to retrieve the datasets from BigQuery\n",
    "+ **scikit-learn**: to normalize the numerical column values"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "509b119e621d"
   },
   "outputs": [],
   "source": [
    "import datetime\n",
    "\n",
    "from google.cloud import bigquery\n",
    "from sklearn import preprocessing"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "e2317a0c256a"
   },
   "source": [
    "### Load the data from BigQuery into a dataframe\n",
    "\n",
    "Run the following cell to load the Gas Prices dataset from BigQuery into a dataframe. You will define a query that selects the columns needed from the gas prices dataset, run the query using the BigQuery client, and then convert it to a Pandas DataFrame.\n",
    "\n",
    "If you named your dataset something other than `new_york_citibike_trips`, be sure to update the `DATASET_NAME` variable.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "6b973dd85bb5"
   },
   "outputs": [],
   "source": [
    "LOCATION = 'US'\n",
    "DATASET_NAME = 'new_york_citibike_trips'\n",
    "\n",
    "# Create the BigQuery client\n",
    "bigquery_client = bigquery.Client(location=LOCATION)\n",
    "\n",
    "# Define the query\n",
    "table = f'{PROJECT_ID}.{DATASET_NAME}.gas_prices'\n",
    "query = f' SELECT Date as date, New_York_City_Average_USD_per_Gal as nyc_gas_price FROM {table}'\n",
    "\n",
    "# Run the query\n",
    "query_job = bigquery_client.query(\n",
    "    query,\n",
    "    location=LOCATION\n",
    ")\n",
    "\n",
    "# Convert to a dataframe\n",
    "gas_df = query_job.to_dataframe()\n",
    "\n",
    "gas_df.head(10)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "edf8d8b73013"
   },
   "source": [
    "## Normalize values\n",
    "\n",
    "The gas price values range from around 2 USD to 5 USD. It is important to normalize these values and scale them to be between 0 and 1 so that all the values within our dataset are weighted consistently. Running the following cell will create a scaler using the MinMaxScaler from scikit-learn and then fit the gas prices to the scaler."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "dbf731dd7471"
   },
   "outputs": [],
   "source": [
    "# Extract gas prices column as a numpy array\n",
    "gas_values = gas_df[['nyc_gas_price']].values\n",
    "\n",
    "# Create scaler from sklearn\n",
    "min_max_scaler = preprocessing.MinMaxScaler()\n",
    "\n",
    "# Fit values to the scaler and replace column with normalized values\n",
    "gas_values_scaled = min_max_scaler.fit_transform(gas_values)\n",
    "gas_df['nyc_gas_price'] = gas_values_scaled\n",
    "\n",
    "gas_df.head(10)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "783e842b95ad"
   },
   "source": [
    "## Copy prices for the week\n",
    "\n",
    "The Citibike dataset contains pricing values for each day, however, the Gas Prices dataset contains one value per week. To get daily pricing values, you can assign a week's pricing value to each day of that particular week.\n",
    "\n",
    "First, run the following cell to refactor the date so it matches the format of a datetime object."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "f87efa907994"
   },
   "outputs": [],
   "source": [
    "def refactor_date(date):\n",
    "    '''Refactor the date strings so they match the Citibike dataset'''\n",
    "    parts = date.split('/')\n",
    "    return f'{parts[2]}-{parts[0]}-{parts[1]}'\n",
    "\n",
    "\n",
    "gas_df['date'] = gas_df['date'].apply(lambda d: refactor_date(d))\n",
    "gas_df.head(10)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "aa009d4968d6"
   },
   "source": [
    "Now, copy the gas price of one day for the whole week by adding new rows to the dataframe.\n",
    "\n",
    "The following cell does this by applying a function to each row in the dataframe that:\n",
    "+ Converts each date to a datetime object\n",
    "+ Loops through the next six days to create new rows\n",
    "+ Appends the new rows to a list"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "1a543016f32c"
   },
   "outputs": [],
   "source": [
    "# Define list to hold new rows\n",
    "new_rows = []\n",
    "\n",
    "\n",
    "def copy_values_for_week(row):\n",
    "    '''Copies gas price of one day for the entire week '''\n",
    "    today = datetime.datetime.strptime(row['date'], '%Y-%m-%d')\n",
    "    # Loop through the next six days\n",
    "    for day in range(1, 7):\n",
    "        # Create and a new row for the next day\n",
    "        new_day = datetime.datetime.strftime(today + datetime.timedelta(days=day), '%Y-%m-%d')\n",
    "        new_row = {'date': new_day, 'nyc_gas_price': row['nyc_gas_price']}\n",
    "        new_rows.append(new_row)\n",
    "\n",
    "\n",
    "# Apply copy function to dataframe\n",
    "gas_df.apply(copy_values_for_week, axis=1)\n",
    "\n",
    "# Add new rows to dataframe\n",
    "gas_df = gas_df.append(new_rows)\n",
    "\n",
    "gas_df"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "04151f1b90f2"
   },
   "source": [
    "You have now finished transforming the Gas Prices dataset! Now you can move on to the next external dataset: **US Holidays**.\n",
    "\n",
    "# US Holidays Dataset\n",
    "\n",
    "## Load the data\n",
    "\n",
    "Run the following cell to load the [US Holidays dataset](https://github.com/GoogleCloudPlatform/python-docs-samples/blob/master/data-science-onramp/data-ingestion/holidays.csv) from BigQuery into a dataframe. Similarly to loading the Gas Prices dataset, this query selects the columns needed, runs the query using the BigQuery client, and converts the job to a dataframe."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "141d4eb20bae"
   },
   "outputs": [],
   "source": [
    "# Define the query\n",
    "table = f'{PROJECT_ID}.{DATASET_NAME}.usholidays'\n",
    "query = f' SELECT Date as date, Holiday as holiday FROM {table}'\n",
    "\n",
    "# Run the query\n",
    "query_job = bigquery_client.query(\n",
    "    query,\n",
    "    location=LOCATION,\n",
    ")\n",
    "\n",
    "# Convert to a dataframe\n",
    "holiday_df = query_job.to_dataframe()\n",
    "\n",
    "holiday_df"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "d775e54a91bf"
   },
   "source": [
    "## Transform the holiday column\n",
    "\n",
    "The purpose of the holiday feature column is to represent a binary value for whether there is a holiday on a specific day or not, rather than the type of holiday. Since this dataset contains only days with holidays, run the following cell to convert the holiday values to 1 (referring to `True`). Later, when combining the datasets, you will add values of 0 (referring to `False`) to dates that are present in the other datasets but not this one."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "94a1dbd0c7a4"
   },
   "outputs": [],
   "source": [
    "holiday_df['holiday'] = holiday_df['holiday'].apply(lambda h: 1)\n",
    "holiday_df.head(10)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "dc80e1791a39"
   },
   "source": [
    "You have now finished transforming the US Holidays dataset! Now you can move on to the next external dataset: **Weather**.\n",
    "\n",
    "# Weather Dataset\n",
    "\n",
    "## Load the data\n",
    "\n",
    "Run the following cell to load the [Weather dataset](https://console.cloud.google.com/bigquery?p=bigquery-public-data&d=ghcn_d&page=dataset) from BigQuery into a dataframe. For each year needed, you will:\n",
    "\n",
    "+ Define a query that selects the required columns (whether there was impactful weather that day, precipitation (mm), minimum temperature, maximum temperature)\n",
    "+ Run the query using the BigQuery client\n",
    "+ Convert the job to a dataframe\n",
    "+ Concatenate it with the combined dataframe"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "546da09f66c8"
   },
   "outputs": [],
   "source": [
    "# Initialize combined weather dataframe\n",
    "weather_df = pd.DataFrame()\n",
    "\n",
    "years = ['2013', '2014', '2015', '2016', '2017', '2018']\n",
    "for year in years:\n",
    "    # Define a query\n",
    "    query = f''' SELECT\n",
    "              date,\n",
    "              IF(MAX(haswx) = 'True', 'True', 'False') AS impactful,\n",
    "              MAX(prcp) AS prcp,\n",
    "              MAX(tmin) AS min_temp,\n",
    "              MAX(tmax) AS max_temp\n",
    "             FROM (\n",
    "              SELECT\n",
    "                wx.date,\n",
    "                IF (SUBSTR(wx.element, 0, 2) = 'WT', 'True', NULL) AS haswx,\n",
    "                IF (wx.element = 'PRCP', wx.value/10, NULL) AS prcp,\n",
    "                IF (wx.element = 'TMIN', wx.value/10, NULL) AS tmin,\n",
    "                IF (wx.element = 'TMAX', wx.value/10, NULL) AS tmax\n",
    "              FROM\n",
    "                `bigquery-public-data.ghcn_d.ghcnd_{year}` AS wx\n",
    "              WHERE\n",
    "                id = 'USW00094728')\n",
    "             GROUP BY\n",
    "              date\n",
    "             ORDER BY\n",
    "              date'''\n",
    "\n",
    "    # Run the query\n",
    "    query_job = bigquery_client.query(\n",
    "        query,\n",
    "        location=LOCATION\n",
    "    )\n",
    "\n",
    "    # Convert to a dataframe\n",
    "    curr_df = query_job.to_dataframe()\n",
    "\n",
    "    # Concatenate with combined dataframe\n",
    "    weather_df = pd.concat([weather_df, curr_df])\n",
    "\n",
    "weather_df.head(10)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "709dbed8ff80"
   },
   "source": [
    "## Normalize Values\n",
    "\n",
    "Similarly to the gas price values, the precipitation and temperature values must be normalized so all the values within the dataset are weighted consistently."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "30bef4a3767a"
   },
   "outputs": [],
   "source": [
    "cols_to_normalize = ['prcp', 'min_temp', 'max_temp']\n",
    "\n",
    "for col_name in cols_to_normalize:\n",
    "    # Extract values\n",
    "    temp_values = weather_df[[col_name]].values\n",
    "\n",
    "    # Fit values to the scaler and replace column with normalized values\n",
    "    temp_values_scaled = min_max_scaler.fit_transform(temp_values)\n",
    "    weather_df[col_name] = temp_values_scaled\n",
    "\n",
    "weather_df.head(10)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "7adf58b4e0a9"
   },
   "source": [
    "## Convert column data types\n",
    "\n",
    "### Date column\n",
    "\n",
    "Run the following cell to change the datatype of the date column from a Datetime object to a string, so that it can be properly combined with the other datasets."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "89614c9a770c"
   },
   "outputs": [],
   "source": [
    "weather_df['date'] = weather_df['date'].apply(lambda d: datetime.datetime.strftime(d, '%Y-%m-%d'))\n",
    "weather_df.head(10)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "a8ed17fc38a5"
   },
   "source": [
    "### Impactful column\n",
    "\n",
    "Run the following cell to encode the `True` and `False` column values to 0 or 1 so that they can be correctly interpreted by the machine learning model."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "cc79d2dfc43c"
   },
   "outputs": [],
   "source": [
    "weather_df['impactful'] = weather_df['impactful'].apply(lambda impact: 1 if impact == \"True\" else 0)\n",
    "weather_df.head(10)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "36e7a484dffb"
   },
   "source": [
    "# Combine the datasets\n",
    "\n",
    "Now that all of the datasets have been transformed, combine them to create one table. The Pandas [`merge`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.merge.html) function can only combine two datasets at a time, so each dataset will be merged separetely.\n",
    "\n",
    "+ **Citibike Trips** and **Gas Prices**: merge on the date column by specifying `on=\"date\"` to create a *combined dataframe*\n",
    "+ *Combined dataframe* and **US Holidays**: merge both datasets on the date column, keep the dates of the combined dataframe by specifying `how='right'`, and fill the empty rows with `False`\n",
    "+ *Combined dataframe* and **Weather**: merge on the date column by specifying `on=\"date\"` to create the *final dataframe*"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "16622436f940"
   },
   "outputs": [],
   "source": [
    "# Merge both gas dataset with citibike dataset\n",
    "final_df = pd.merge(gas_df, citibike_df, on=\"date\")\n",
    "\n",
    "# Merge combined dataset with holiday dataset\n",
    "final_df = pd.merge(holiday_df, final_df, how=\"right\", on=\"date\").fillna(0)\n",
    "\n",
    "# Merge combined dataset with weather dataset\n",
    "final_df = pd.merge(weather_df, final_df, on=\"date\")\n",
    "\n",
    "final_df"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "db9af759b676"
   },
   "source": [
    "# Improve the date feature\n",
    "\n",
    "Now that all the datasets have been combined, you can separate the date column into more features such as the year, month, and day. Then, the date column can be dropped."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "e8ca63a77d2e"
   },
   "outputs": [],
   "source": [
    "# Define the name and year, month, and day columns\n",
    "date_columns = final_df['date'].str.split('-', expand=True)\n",
    "date_names = ['year', 'month', 'day']\n",
    "\n",
    "# Add the columns at the start of the dataset\n",
    "for i in range(3):\n",
    "    final_df.insert(0, date_names[i], date_columns[i])\n",
    "    final_df[date_names[i]] = final_df[date_names[i]].astype('int32')\n",
    "\n",
    "# Remove the date column from the dataframe\n",
    "final_df = final_df.drop('date', axis=1)\n",
    "\n",
    "final_df.head(10)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "21094f12210a"
   },
   "source": [
    "The following cell will extract the day of the week from the date information using the Datetime python library."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "add505986176"
   },
   "outputs": [],
   "source": [
    "def find_weekday(df):\n",
    "    ''' Creates a datetime object and returns the day of the week '''\n",
    "    date = datetime.datetime(int(df['year']), int(df['month']), int(df['day']))\n",
    "    return date.weekday()\n",
    "\n",
    "\n",
    "# Apply the find_weekday() function to every row of the dataset\n",
    "weekday_col = final_df.apply(find_weekday, axis=1)\n",
    "\n",
    "# Insert the weekday column at the start\n",
    "final_df.insert(0, 'weekday', weekday_col)\n",
    "\n",
    "final_df"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "af03a0bf5ea7"
   },
   "source": [
    "# Upload the data to a GCS bucket\n",
    "\n",
    "Now that you have finished feature engineering on all of the datasets, you will need to upload the data to a bucket so that it can be accessed later when training a model. Run the following cell to upload the final dataframe to the GCS bucket you specified earlier."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "be82eb960daa"
   },
   "outputs": [],
   "source": [
    "# Get bucket using storage client\n",
    "bucket = storage_client.get_bucket(BUCKET_NAME)\n",
    "\n",
    "# Upload the final dataframe as a csv file to the bucket\n",
    "bucket.blob('feature_engineering/final_data.csv').upload_from_string(final_df.to_csv(), 'text/csv')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "07502ae59aa2"
   },
   "source": [
    "You have now finished feature engineering on all of the datasets! Model training is next."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "30934f734a13"
   },
   "outputs": [],
   "source": [
    "###################################################################\n",
    "###USED FOR INTERNAL TESTING TEARDOWN - USERS MAY SKIP THIS CELL###\n",
    "###################################################################\n",
    "\n",
    "\n",
    "def delete_blob_in_gcs(blob_name):\n",
    "    '''Delete a blob in GCS'''\n",
    "    blob = bucket.blob(blob_name)\n",
    "    blob.delete()\n",
    "\n",
    "\n",
    "# Delete blob from GCS\n",
    "delete_blob_in_gcs('clean_data/citibike.csv.gz')\n",
    "delete_blob_in_gcs('holidays.csv')\n",
    "delete_blob_in_gcs('gasprices.csv')\n",
    "\n",
    "\n",
    "# Delete dataset from BigQuery\n",
    "\n",
    "bigquery_client.delete_dataset(\n",
    "    f'{PROJECT_ID}.{DATASET_NAME}', delete_contents=True, not_found_ok=True\n",
    ")"
   ]
  }
 ],
 "metadata": {
  "colab": {
   "name": "feature_engineering.ipynb",
   "toc_visible": true
  },
  "environment": {
   "name": "tf2-gpu.2-3.mnightly-2021-02-12-debian-10-test",
   "type": "gcloud",
   "uri": "gcr.io/deeplearning-platform-release/tf2-gpu.2-3:mnightly-2021-02-12-debian-10-test"
  },
  "interpreter": {
   "hash": "1b0ec9b1916cf0489ce214584e3f7f99b183b01cc4dc6fb00e756ec75ed889c4"
  },
  "kernelspec": {
   "display_name": "Python 3.8.0 64-bit ('3.8.0')",
   "name": "python3"
  },
  "language_info": {
   "name": "python",
   "version": ""
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}